package com.ruoyi.sys.service.impl;

import java.util.List;
import java.util.Map;

import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.db.domain.SmsConfigInfo;
import com.ruoyi.db.mapper.SmsConfigInfoMapper;
import com.ruoyi.sys.service.ISmsConfigInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.text.Convert;

import javax.annotation.Resource;

/**
 * 短信管理Service业务层处理
 * 
 * @author admin
 * @date 2022-07-26
 */
@DataSource(DataSourceType.SLAVE)
@Service
public class SmsConfigInfoServiceImpl implements ISmsConfigInfoService
{
    @Resource
    private SmsConfigInfoMapper smsConfigInfoMapper;

    /**
     * 查询短信管理
     * 
     * @param id 短信管理主键
     * @return 短信管理
     */
    @Override
    public SmsConfigInfo selectSmsConfigInfoById(Long id)
    {
        return smsConfigInfoMapper.selectSmsConfigInfoById(id);
    }

    /**
     * 查询短信管理列表
     * 
     * @param smsConfigInfo 短信管理
     * @return 短信管理
     */
    @Override
    public List<SmsConfigInfo> selectSmsConfigInfoList(SmsConfigInfo smsConfigInfo)
    {
        return smsConfigInfoMapper.selectSmsConfigInfoList(smsConfigInfo);
    }

    /**
     * 查询短信管理列表
     *
     * @param smsConfigInfo 短信管理
     * @return 短信管理
     */
    @Override
    public List<Map<String, Object>> selectSmsConfigInfoListMap(SmsConfigInfo smsConfigInfo)
    {
        return smsConfigInfoMapper.selectSmsConfigInfoListMap(smsConfigInfo);
    }

    /**
     * 新增短信管理
     * 
     * @param smsConfigInfo 短信管理
     * @return 结果
     */
    @Override
    public int insertSmsConfigInfo(SmsConfigInfo smsConfigInfo)
    {
        return smsConfigInfoMapper.insertSmsConfigInfo(smsConfigInfo);
    }

    /**
     * 修改短信管理
     * 
     * @param smsConfigInfo 短信管理
     * @return 结果
     */
    @Override
    public int updateSmsConfigInfo(SmsConfigInfo smsConfigInfo)
    {
        return smsConfigInfoMapper.updateSmsConfigInfo(smsConfigInfo);
    }

    /**
     * 批量删除短信管理
     * 
     * @param ids 需要删除的短信管理主键
     * @return 结果
     */
    @Override
    public int deleteSmsConfigInfoByIds(String ids)
    {
        return smsConfigInfoMapper.deleteSmsConfigInfoByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除短信管理信息
     * 
     * @param id 短信管理主键
     * @return 结果
     */
    @Override
    public int deleteSmsConfigInfoById(Long id)
    {
        return smsConfigInfoMapper.deleteSmsConfigInfoById(id);
    }

    @Override
    public AjaxResult changeStatus(Long id, String useType) {

        int result1 = smsConfigInfoMapper.updateAllSmsConfigInfo(useType);

        SmsConfigInfo smsConfigInfo = new SmsConfigInfo();
        smsConfigInfo.setId(id);
        smsConfigInfo.setStatus(1);
        int result2 = smsConfigInfoMapper.updateSmsConfigInfo(smsConfigInfo);

        boolean result = result1 > 0&& result2 > 0;

        return result?AjaxResult.success():AjaxResult.error();
    }
}
